package com.star.service;

import com.star.vo.OrderReportVO;
import com.star.vo.SalesTop10ReportVO;
import com.star.vo.TurnoverReportVO;
import com.star.vo.UserReportVO;
import springfox.documentation.service.Response;

import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.time.LocalDate;
import java.time.LocalDateTime;

public interface ReportService {
    /**
     * 统计指定时间内的营业额统计数据
     * @param begin
     * @param end
     * @return
     */
    TurnoverReportVO getTurnoverStatistics(LocalDate begin, LocalDate end, Long businessId);

    /**
     * 统计指定时间内的用户统计数据
     * @param begin
     * @param end
     * @return
     */
    UserReportVO getUserStatistics(LocalDate begin, LocalDate end);

    /**
     * 统计指定时间内的订单数据
     * @param begin
     * @param end
     * @return
     */
    OrderReportVO getOrderStatistics(LocalDate begin, LocalDate end, Long businessId);

    /**
     * 查询销量排名top10
     * @return
     */
    SalesTop10ReportVO getSalesTop10(LocalDate begin, LocalDate end, Long businessId);

    /**
     * 导出Excel报表接口
     * @param response
     */
    void exportOperationalData(HttpServletResponse response);
}
